package com.aoxin.mapper.course.systemCourse;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.aoxin.model.course.SlfSyllabus;
import com.aoxin.model.dto.CourseDto;
import com.aoxin.model.dto.SelectDto;
import com.aoxin.model.dto.SlfSyllabusDto;

/**
 * 课程表Mapper
 * 
 * @author Melody
 * @date 2018年3月27日 上午9:58:33
 */
public interface SlfSyllabusMapper {

	/**
	 * 批量删除删除课表
	 * 
	 * @param syllabusIds
	 *            课表ID集合
	 */
	void deleteByPrimaryKeys(List<Integer> syllabusIds);

	/**
	 * 添加课程表
	 * 
	 * @param record
	 *            课表
	 */
	void insertSelective(SlfSyllabus record);

	/**
	 * 查询课程表
	 * 
	 * @param syllabusId
	 *            课程表ID
	 * @return 课表
	 */
	SlfSyllabusDto selectByPrimaryKey(Integer syllabusId);

	/**
	 * 
	 * @param record
	 *            课表
	 */
	void updateByPrimaryKeySelective(SlfSyllabus record);

	/**
	 * 查询课表
	 * 
	 * @param map
	 *            条件集合
	 * @return 课表
	 */
	List<SlfSyllabus> getList(Map<String, Object> map);

	/**
	 * 根据孩子ID查询课表
	 * 
	 * @param map
	 *            条件集合
	 * @return 课表集合
	 */
	List<CourseDto> getListByChildren(Map<String, Object> map);

	/**
	 * 根据孩子ID查询课表
	 * 
	 * @param map
	 *            条件集合
	 * @return 课表集合
	 */
	CourseDto getSyllabusByChildren(Map<String, Object> map);

	/**
	 * 课程展示
	 * 
	 * @param slfSyllabus
	 * @return
	 */
	List<SlfSyllabus> disByPrimaryKey(SlfSyllabus slfSyllabus);

	/**
	 * 检查同一时间教室是否占用
	 * 
	 * @param map
	 *            条件集合
	 * @return 课表记录数
	 */
	Integer checkClassroomDate(Map<String, Object> map);

	/**
	 * 获取周数
	 * 
	 * @return 周
	 */
	List<SelectDto> getSelectWeek();

	/**
	 * 修改状态
	 * 
	 * @param state
	 *            状态
	 * @param syllabusId
	 *            课表ID
	 */
	void updateState(@Param("state") Integer state, @Param("state") Integer syllabusId);

	/**
	 * 根据学校ID查询课表日期
	 * 
	 * @param schoolId
	 *            学校ID
	 * @param ymdDate
	 *            开始时间
	 * @return 课表日期
	 */
	List<String> getSyllabusDate(@Param("schoolId") Integer schoolId, @Param("ymdDate") String ymdDate);

	/**
	 * 根据课表id查询课程id
	 * 
	 * @param syllabusId
	 * @return
	 */
	Integer getCourseId(Integer syllabusId);

}